import Vue from "vue";
import Vuex from "vuex";
import * as api from "@/api/index";
import { Toast } from "vant";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    user: localStorage.user ? JSON.parse(localStorage.user) : {},
  },
  mutations: {
    setUser(state, payload) {
      state.user = payload;
    },
  },
  actions: {
    async login(content, payload) {
      // 将表单提交的账号密码进行提交payload={username,password}
      //当登录成功，后端返回用户的数据，进行修改用户信息
      // 保存登录的凭证token
      //   token:通过这个凭证就可以进行访问，
      // access-token就是登录凭证,他会有有效期，比如1小时有效
      //   refresh-token：当access-token失效的时候，使用refresh-token进行获取access-token,
      //   就可以使用新的token进行登录，refresh-token都失效了，就必须重新登陆
      let result = await api.postLogin(payload);
      if (result.msg === "操作成功") {
        Toast.success("登录成功");
        content.commit("setUser", result.result);
        localStorage.user = JSON.stringify(result.result);
      } else {
        // Toast.fail(result.result);
        Toast({
          icon: "./imgs/fail.png",
          message: result.result,
        });
      }
      return result;
      //   console.log(result);
    },
  },
  modules: {},
});
